package com.youth.youthservice.client;

import com.youth.commonutils.R;
import com.youth.youthservice.client.Impl.VodFileDegradeFeignClient;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.ArrayList;

/*
* feign远程调用
* @FeignClient 注解用于指定从那个服务中调用功能，名称和被调用的服务名相同
* @GetMapping  注解用于对被调用的微服务进行地址映射
* @PathVariable注解一定要指定参数名称，否则出错
* @Component 注入到spring里面
* */
@Component  //交给spring管理
/*第二个参数表示，当远程调用执行出错的时候，该找到那个类进行处理*/
@FeignClient(name="service-vod",fallback = VodFileDegradeFeignClient.class)   //被调用的名字
public interface VodClient {

    /*定义的调用方法的路径*/
    /*根据视频id删除阿里云里面的视频*/
    @ApiOperation(value = "根据视频id删除阿里云里面的视频")
    @DeleteMapping("/eduvod/video/removeAliVideo/{videoId}")
    R removeAliVideo(@PathVariable("videoId") String videoId);

    /*根据视频ids删除阿里云里面的多个视频*/
    @ApiOperation(value = "根据ids删除阿里云里面的多个视频")
    @DeleteMapping("/eduvod/video/removeAliVideos")
    R removeAliVideos(@RequestParam("videoIds") ArrayList<String> videoIds);

}